package com.wannabuy.mobile.dao;

import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import com.google.gson.Gson;
import com.wannabuy.mobile.model.Comprador;
import com.wannabuy.mobile.util.Constantes;
import com.wannabuy.mobile.util.Util;

public class DAOComprador implements RepositorioComprador{

	@Override
	public Comprador buscarComprador(Comprador comp) {
		HttpClient httpcliente = new DefaultHttpClient();
		ArrayList<NameValuePair> postParameters;
		String respostadoBanco="";
		HttpPost httppost = new HttpPost(
				"http://10.0.2.2:8084/WannabuyServer/Usuario");

		postParameters = new ArrayList<NameValuePair>();
		postParameters.add(new BasicNameValuePair("login", comp.getNome()));
		postParameters.add(new BasicNameValuePair("acao", "buscar"));
		try {
			httppost.setEntity(new UrlEncodedFormEntity(postParameters));
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		
		HttpResponse resposta;

//		StrictMode.ThreadPolicy politica = new StrictMode.ThreadPolicy.Builder()
//				.permitAll().build();
//		StrictMode.setThreadPolicy(politica);

		try {
			resposta = httpcliente.execute(httppost);

			HttpEntity entidade = resposta.getEntity();

			InputStream dados;

			if (entidade != null) {
				dados = entidade.getContent();
				respostadoBanco = Util.getStringFromInputStream(dados);
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		
		//convertemos o objeto recebido em um comprador para o retorno
		
		Gson conversor = new Gson();
		Comprador ret = conversor.fromJson(respostadoBanco, Comprador.class);
		
		return ret;
	}

	@Override
	public String buscarComprador(String login) {
		HttpClient httpcliente = new DefaultHttpClient();
		ArrayList<NameValuePair> postParameters;
		String respostadoBanco="";
		HttpPost httppost = new HttpPost(
				Constantes.enderecoBanco+"/usuario");

		postParameters = new ArrayList<NameValuePair>();
		postParameters.add(new BasicNameValuePair("login", login.toUpperCase()));
		postParameters.add(new BasicNameValuePair("acao", "buscar"));
		try {
			httppost.setEntity(new UrlEncodedFormEntity(postParameters));
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		
		HttpResponse resposta;

		try {
			resposta = httpcliente.execute(httppost);

			HttpEntity entidade = resposta.getEntity();

			InputStream dados;

			if (entidade != null) {
				dados = entidade.getContent();
				respostadoBanco = Util.getStringFromInputStream(dados);
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		
		return respostadoBanco;
	}

}
